﻿/**
 * @file NandDeviceDesc.h
 * @brief NAND设备参数描述类，记录块数、页数和页大小。
 */
#ifndef __NandDeviceDesc_h__
#define __NandDeviceDesc_h__

#include "BasicTypes.h"

/**
 * @class NandDeviceDesc
 * @brief NAND设备参数描述类。
 */
class NandDeviceDesc
{
public:
    /**
     * @brief 构造函数，初始化设备参数。
     * @param blockCount 块数
     * @param pagesPerBlock 每块页数
     * @param bytesPerPage 每页字节数
     */
    NandDeviceDesc(U32 blockCount, U32 pagesPerBlock, U32 bytesPerPage);

    /**
     * @brief 获取块数。
     * @return 块数
     */
    inline U32 GetBlockCount() const { return _BlockCount; }
    /**
     * @brief 获取每块页数。
     * @return 每块页数
     */
    inline U32 GetPagesPerBlock() const { return _PagesPerBlock; }
    /**
     * @brief 获取每页字节数。
     * @return 每页字节数
     */
    inline U32 GetBytesPerPage() const { return _BytesPerPage; }

private:
    U32 _BlockCount;    /**< 块数 */
    U32 _PagesPerBlock; /**< 每块页数 */
    U32 _BytesPerPage;  /**< 每页字节数 */
};

#endif
